package com.hgsf.mapper;

import com.hgsf.entity.*;
import com.hgsf.util.Page;
import org.apache.ibatis.annotations.Select;

import java.util.List;
import java.util.Map;

public interface AdminMapper {
	/**
	 * 查询记录,验证登录
	 * 
	 * @param admin
	 * @return
	 */
	Admin querySingleAdmin(Admin admin);

	/**
	 * 插入课程记录
	 * 
	 * @param course
	 * @return
	 */
	int insertCourse(Course course);

	/**
	 * 查询所有课程
	 * 
	 * @return
	 */
	List<Course> queryAllCourse();

	/**
	 * 查詢所有教师
	 * 
	 * @return
	 */
	List<Course> queryCourseByCondition(String condition);

	/**
	 * 查詢所有教师
	 * 
	 * @return
	 */
	public List<Teacher> queryAllTeacher();

	/**
	 * 查询所有的专业
	 * @return
	 */
	public List<Major> queryMajor();

	/**
	 * 通过课程名称模糊查询课程
	 * @param course
	 * @return
	 */
	public int updateCourse(Course course);

	/**
	 * 删除指定课程
	 * @param cid
	 * @return
	 */
	public int delectCourse(int cid);

	/**
	 * 插入学生信息
	 * 
	 * @param s
	 * @return
	 */
	int insertStudent(Student s);

	/**
	 * 插入教师信息
	 * 
	 * @param t
	 * @return
	 */
	int insertTeacherMsg(Teacher t);

	/**
	 * 查询学院
	 * 
	 * @return
	 */
	List<College> queryCollege();

	/**
	 * 插入专业记录
	 * 
	 * @param m
	 * @return
	 */
	int insertMajor(Major m);

	/**
	 * 查看选课情况
	 * 
	 * @param condition
	 * @return
	 */

	List<Map<String,String>> queryStuSelectedCourse(String condition);


	/**
	 * 条件查找学生信息
	 * 
	 * @param condition
	 * @return
	 */
	List<Student> queryStudentByCondition(String condition);

	/**
	 * 修改学生信息
	 * 
	 * @param student
	 * @return
	 */
	int alterStudent(Student student);

	/**
	 * 删除学生
	 * 
	 * @param sid
	 * @return
	 */
	int deleteStudent(long sid);

	/**
	 * 查询教师
	 * 
	 * @return
	 */
	List<Map<String,String>> queryTeacher(String codition);

	/**
	 * 删除教师
	 * 
	 * @param tid
	 * @return
	 */
	int deleteTeacher(int tid);

	/**
	 * 修改教师信息
	 * @param map
	 * @return
	 */
	int alterTeacher(Map<String,String> map);

	/**
	 * 重置教师密码
	 * @param tid
	 * @return
	 */
	int resetTeacherPsw(int tid);

	/**
	 * 重置管理员密码
	 * @param aid
	 * @return
	 */
	int resetAdminPsw(int aid);
	/**
	 * 重置管理员密码
	 * @param sid
	 * @return
	 */
	int resetStudentPsw(long sid);
	/**
	 * 分页查询课程
	 * @param page
	 * @return
	 */
	List<Map<String,String>> queryCourseByPage(Page<Map<String,String>> page);

	/**
	 * 查询所有课程数量
	 * @return
	 */
	int queryTotalCourseCount();

	/**
	 * 删除已选课程
	 * @param selectedCourse
	 * @return
	 */
	int deleteSelectedCourse(SelectedCourse selectedCourse);
}
